home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / network / samba / patches / samba-1.034 / samba-1
Text File  |  1995-09-21  |  5KB  |  160 lines

  1. diff -u -r --new-file last-version/source/change-log samba-1.9.14/source/change-log
  2. --- last-version/source/change-log    Thu Sep 21 20:57:12 1995
  3. +++ samba-1.9.14/source/change-log    Fri Sep 22 10:39:15 1995
  4. @@ -1417,7 +1417,7 @@
  5.      by lydick@cvpsun104.csc.ti.com (Dan Lydick))
  6.  
  7.  
  8. -1.9.14:
  9. +1.9.14: 22/9/95
  10.          - fixed up level 3 and 4 trans2 requests for OS/2
  11.      - minor optimisations in a few places
  12.      - cleaned up the closing of low fds a bit
  13. @@ -1588,6 +1588,8 @@
  14.      - sunos5 patch from Niels.Baggesen@uni-c.dk
  15.      - more japanese extensions patches from fujita@ainix.isac.co.jp 
  16.      - released alpha20
  17. +    - added force_user to conn struct
  18. +    
  19.  
  20.  ==========
  21.  todo:
  22. @@ -1627,4 +1629,6 @@
  23.  ---
  24.  ALLOW_PASSWORD_CHANGE only compiles/works on some systems
  25.  
  26. +---
  27. +weird foooooooo/open.exe bug on NT
  28.  
  29. diff -u -r --new-file last-version/source/password.c samba-1.9.14/source/password.c
  30. --- last-version/source/password.c    Tue Sep 19 14:48:12 1995
  31. +++ samba-1.9.14/source/password.c    Fri Sep 22 10:37:06 1995
  32. @@ -779,7 +779,7 @@
  33.  /****************************************************************************
  34.  check if a username is valid
  35.  ****************************************************************************/
  36. -static BOOL user_ok(char *user,int snum)
  37. +BOOL user_ok(char *user,int snum)
  38.  {
  39.    pstring valid, invalid;
  40.    BOOL ret;
  41. @@ -875,7 +875,8 @@
  42.  /****************************************************************************
  43.  check for authority to login to a service with a given username/password
  44.  ****************************************************************************/
  45. -BOOL authorise_login(int snum,char *user,char *password, int pwlen, BOOL *guest,int vuid)
  46. +BOOL authorise_login(int snum,char *user,char *password, int pwlen, 
  47. +             BOOL *guest,BOOL *force,int vuid)
  48.  {
  49.    BOOL ok = False;
  50.    
  51. @@ -897,6 +898,8 @@
  52.       if the service is guest_only then steps 1 to 5 are skipped
  53.    */
  54.  
  55. +  if (GUEST_ONLY(snum)) *force = True;
  56. +
  57.    if (!(GUEST_ONLY(snum) && GUEST_OK(snum)))
  58.      {
  59.  
  60. @@ -1010,6 +1013,7 @@
  61.        else
  62.      DEBUG(0,("Invalid guest account %s??\n",guestname));
  63.        *guest = True;
  64. +      *force = True;
  65.      }
  66.  
  67.    if (ok && !user_ok(user,snum))
  68. diff -u -r --new-file last-version/source/server.c samba-1.9.14/source/server.c
  69. --- last-version/source/server.c    Thu Sep 21 20:49:48 1995
  70. +++ samba-1.9.14/source/server.c    Fri Sep 22 10:39:21 1995
  71. @@ -1596,13 +1596,15 @@
  72.  
  73.    snum = Connections[cnum].service;
  74.  
  75. -  if (lp_security() == SEC_SHARE || (*lp_force_user(snum))) {
  76. +  if (Connections[cnum].force_user || 
  77. +      lp_security() == SEC_SHARE ||
  78. +      !(vuser = get_valid_user_struct(uid)) ||
  79. +      !user_ok(vuser->name,snum)) {
  80.      uid = Connections[cnum].uid;
  81.      gid = Connections[cnum].gid;
  82.      groups = Connections[cnum].groups;
  83.      ngroups = Connections[cnum].ngroups;
  84.    } else {
  85. -    vuser = get_valid_user_struct(uid);
  86.      if (!vuser) {
  87.        DEBUG(2,("Invalid vuid used %d\n",uid));
  88.        return(False);
  89. @@ -2288,6 +2290,7 @@
  90.    struct passwd *pass = NULL;
  91.    connection_struct *pcon;
  92.    BOOL guest = False;
  93. +  BOOL force = False;
  94.    static BOOL first_connection = True;
  95.  
  96.    strlower(service);
  97. @@ -2347,7 +2350,7 @@
  98.    add_session_user(service);
  99.  
  100.    /* shall we let them in? */
  101. -  if (!authorise_login(snum,user,password,pwlen,&guest,vuid))
  102. +  if (!authorise_login(snum,user,password,pwlen,&guest,&force,vuid))
  103.      {
  104.        DEBUG(2,("%s invalid username/password for %s\n",timestring(),service));
  105.        return(-1);
  106. @@ -2389,7 +2392,7 @@
  107.    else
  108.      pcon->admin_user = False;
  109.      
  110. -
  111. +  pcon->force_user = force;
  112.    pcon->uid = pass->pw_uid;
  113.    pcon->gid = pass->pw_gid;
  114.    pcon->num_files_open = 0;
  115. @@ -2427,7 +2430,8 @@
  116.        pcon->uid = pass2->pw_uid;
  117.        string_set(&pcon->user,fuser);
  118.        strcpy(user,fuser);
  119. -      DEBUG(3,("Forced user %s\n",fuser));
  120. +      pcon->force_user = True;
  121. +      DEBUG(3,("Forced user %s\n",fuser));      
  122.      }
  123.        else
  124.      DEBUG(1,("Couldn't find user %s\n",fuser));
  125. diff -u -r --new-file last-version/source/smb.h samba-1.9.14/source/smb.h
  126. --- last-version/source/smb.h    Thu Sep 21 20:58:15 1995
  127. +++ samba-1.9.14/source/smb.h    Fri Sep 22 10:35:42 1995
  128. @@ -251,6 +251,7 @@
  129.  typedef struct
  130.  {
  131.    int service;
  132. +  BOOL force_user;
  133.    int uid; /* uid of user who *opened* this connection */
  134.    int gid; /* gid of user who *opened* this connection */
  135.    void *dirptr;
  136. @@ -561,6 +562,7 @@
  137.  };
  138.  
  139.  /* and a few prototypes */
  140. +BOOL user_ok(char *user,int snum);
  141.  int sys_rename(char *from, char *to);
  142.  int sys_select(fd_set *fds,struct timeval *tval);
  143.  int sys_unlink(char *fname);
  144. @@ -681,7 +683,8 @@
  145.  int reply_trans2(char *inbuf,char *outbuf,int length,int bufsize);
  146.  int reply_trans(char *inbuf,char *outbuf);
  147.  char *ufc_crypt(char *key,char *salt);
  148. -BOOL authorise_login(int snum,char *user,char *password, int pwlen, BOOL *guest,int vuid);
  149. +BOOL authorise_login(int snum,char *user,char *password, int pwlen, 
  150. +             BOOL *guest,BOOL *force,int vuid);
  151.  void add_session_user(char *user);
  152.  int valid_uid(int uid);
  153.  user_struct *get_valid_user_struct(int uid);
  154. diff -u -r --new-file last-version/source/version.h samba-1.9.14/source/version.h
  155. --- last-version/source/version.h    Thu Sep 21 21:06:09 1995
  156. +++ samba-1.9.14/source/version.h    Fri Sep 22 10:40:47 1995
  157. @@ -1 +1 @@
  158. -#define VERSION "1.9.14alpha20"
  159. +#define VERSION "1.9.14"
  160.